#include "BaseGameObject.h"
#include "Const.h"

/**
 * 构造方法。
 * @param bitmap    后台缓冲位图
 * @param type      类型
 * @param x, y      左上角坐标
 */
BaseGameObject::BaseGameObject(QPixmap* bitmap, Type type, int x, int y) :
    mBitmap(bitmap),
    mType(type),
    mX(x),
    mY(y) {
    // 加载图片
    mImage.load(QString(Const::IMAGE_FILE_PATH).arg(type));

    // 绘制自身
    this->draw();
}

/**
 * 析构方法。
 */
BaseGameObject::~BaseGameObject() {
}

/**
 * 绘制自身。
 */
void BaseGameObject::draw() {
    mDrawer.begin(mBitmap);
    mDrawer.drawImage(mX * Const::GRID_SIZE, mY * Const::GRID_SIZE, mImage);
    mDrawer.end();
}

/**
 * 获取类型。
 * @return 类型
 */
BaseGameObject::Type BaseGameObject::getType() {
    return mType;
}

/**
 * 移动。
 * @param moveResult    移动结果
 * @return 被推动的箱子
 */
BaseGameObject* BaseGameObject::move(int, MoveResult* moveResult) {
    *moveResult = CANNOT_MOVE;
    return this;
}
